#ifndef LIGHTHANDLER_H_
#define LIGHTHANDLER_H_
#include <GL/glut.h>
#include "../baseclass/StateUser.h"
#include "../spec/TargetObject.h"


//classe per la gestione delle luci
class LightHandler : public StateUser
{
private:
    GLfloat materiale_ambiente[4];
    GLfloat materiale_diffuso[4];
    GLfloat materiale_speculare[4];
    GLfloat luce_ambiente[4];
    GLfloat luce_diffusa[4];
    GLfloat luce_speculare[4];
    GLfloat posizione_luce[4];

   
    //void operator=(LightHandler&);     // impedisce l'assegnamento
    //LightHandler(const LightHandler&); // impedisce la copia
    //static LightHandler istance;       // unique instance



public:
	LightHandler(GameStatus* g): StateUser(g){}
    void Init();
	~LightHandler();
    void Move();
    void InitMaterial();
    void SetLightOn() {glEnable(GL_LIGHTING), state->luce = 1; }
    void SetLightOf() {glDisable(GL_LIGHTING),state->luce = 0;  }
    //static LightHandler& Instance() {return istance; }    
  
};

#endif /*LIGHTHANDLER_H_*/
